草庐IT

Swift 递归枚举

全部标签

java - switch 语句在这里是否合适,采用枚举?

今天我用Java制作了一个俄罗斯方block克隆体,当需要实现block生成机制时,我编写了这个采用枚举的switch语句。我被告知要尽可能避免使用switch语句,但我不确定是否可以在这里避免使用switch语句,除非我彻底修改我最初的基于继承的设计选择。为了实现不同类型的block,我决定制作一个名为Block的抽象父类(superclass),并为每种特定类型制作一个子类。我还制作了一个标记block类型的枚举。例如,一个ZBlockextendsBlock对象会将Type.ZBlock枚举分配给它的Type字段变量。privatevoidspawnBlock(Typetype)

java - 如何将不同的枚举类型传递给方法?

我有一个方法,它接受一个枚举并以某种方式使用它。问题是我有许多不同的枚举类型,将枚举传递给方法并不是可接受的做法。 最佳答案 我假设你的意思是你有一堆不同的枚举类,它们意味着不同的东西,并且你想将它们传递到一个方法中。为此,请使用markerinterface:publicinterfaceSpecialEnumType{}然后:publicenumMySpecialEnumTypeimplementsSpecialEnumType{...}publicenumAnotherSpecialEnumTypeimplementsSpec

java - 比较枚举的最佳方式

这个问题在这里已经有了答案:ComparingJavaenummembers:==orequals()?(15个答案)关闭4年前。我有一个枚举,例如enumColor{Red,Brown}。我也有一些这种类型的变量:Colorc1=Brown,c2=Red与常量值比较的最佳方法是什么:if(c1==Color.Brown){//isbrown}或if(c1.equals(Color.Brown)){//isbrown}

java - 如何将 rowmapper 中的结果集转换为枚举?

我的行映射器如下:privatestaticfinalclassUserRowMapperimplementsRowMapper{Useruser=newUser();user.setId(rs.getInt("id"));user.setUserType((UserType)rs.getInt("userType"));//?????returnuser;}所以我试图将数据库中userType的整数值转换为枚举UserType。为什么这行不通? 最佳答案 投了吗?不,做不到。您可以调用valueOf从字符串中获取枚举值,只要字符串

java - 返回一些负数的递归阶乘方法

这是我的阶乘方法:publicstaticlongfactorial(intnum1){if(num1这就是所谓的递归阶乘方法:for(i=0;i到目前为止一切顺利,起初输出似乎是正确的,但一些阶乘是负数而不是正数:OUTPUT:0!=11!=12!=23!=64!=245!=1206!=7207!=5,0408!=40,3209!=362,88010!=3,628,80011!=39,916,80012!=479,001,60013!=6,227,020,80014!=87,178,291,20015!=1,307,674,368,00016!=20,922,789,888,0001

java - 递归类型边界的使用

我的一个friend在JavaAPI(https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html)中发现了这个花絮,ClassEnum>并通过阅读以下文章https://docs.oracle.com/javase/tutorial/java/generics/genTypes.html我可以理解上述行在语法上的含义,但从给出的示例中我无法找出Enum类之外的用例(查看源代码)。我想详细了解上述可能提供解决方案的可能问题。 最佳答案 例如,允许子类使用它们自己的类型很有

java - Java 枚举的逻辑操作

我有一个项目,在不同的场景中,我必须处理大型数据集的不同子集。按照我编写代码的方式,有一个Collector接口(interface)和一个类DataCollectorimplementsCollector。DataCollector类是用子集创建条件实例化的,这些条件是枚举。假设数据集是一组100万个英语单词,我想处理由奇数个字母组成的单词子集。然后,我执行以下操作:DataCollectordataCollector=newDataCollector(CollectionType.WORDS_OF_ODD_LENGTH);SetfourLetteredWords=dataColle

java - 帮助使用 Java 中的枚举

是否可以让枚举更改其值(从其内部)?也许用代码更容易理解我的意思:enumRate{VeryBad(1),Bad(2),Average(3),Good(4),Excellent(5);privateintrate;privateRate(intrate){this.rate=rate;}publicvoidincreateRating(){//isitpossibletomaketheenumvariableincrease?//thisis,ifrightnowthisenumhasasvalueAverage,aftercallingthis//methodtohaveitchan

c# - 为什么我们不能从 C# 中的枚举实例访问枚举值?

这可能会被否决,但这个问题从昨天开始就一直困扰着我。直到我找到一个链接,然后我才知道我并不是真的疯了哈哈:Enumasinstancevariables我基本上是在问与OP问题相反的问题。鉴于:enumCoffee{BIG,SMALL}publicclassMyClass{privateCoffeecoffee;//Constructoretc.}尽管这是Java并且枚举在两种语言中确实有些不同我不能在C#中执行coffee.BIG或coffee.BIG.SMALL(尽管在阅读时意义不大,考虑到coffee是Coffee类型应该是可能的)? 最佳答案

java - 斐波那契数列 - 递归求和

好的,我最初写了一个简单的代码来根据用户输入从系列中返回斐波那契数..n=5会产生3..staticintfibonacci(intn){if(n==1)return0;elseif(n==2)return1;elsereturn(fibonacci(n-1)+fibonacci(n-2));}我正在考虑修改代码以返回系列的总和,而不是仅仅返回系列的值,并且在尝试求和时我不小心将1添加到return语句,令我惊讶的是,它返回了总和正确。下面的代码将在n=5时返回7。我不确定这是否是计算总和的正确方法...如果我加1,我仍然无法弄清楚级数的总和是如何工作的。有人可以解释一下吗??stat